package com.heima.wemedia.listen;

import com.heima.common.constants.message.NewsAutoScanConstants;
import com.heima.model.wemedia.pojos.WmNews;
import com.heima.wemedia.service.WmNewsAutoScanService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.rabbit.annotation.Queue;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

@Component
@Slf4j
public class WemediaNewsAutoListener {

    @Autowired
    private WmNewsAutoScanService wmNewsAutoScanService;

    /**
     * queues = 监听指定队列 但是不会自动创建队列
     * <p>
     * queuesToDeclare = 监听指定队列  如果队列不存在 会自动创建
     * <p>
     * bindings = 监听指定队列 ,并且如果队列不存在 会自动创建  ,还会自动创建对应的交换机和路由key
     *
     * @param newsId
     */
    @RabbitListener(queuesToDeclare = @Queue(NewsAutoScanConstants.WM_NEWS_AUTO_SCAN_QUEUE))
    //消息序列化使用json序列化 如果只发一个integer的值,在接收时需要使用字符串
    public void handleAutoScanMsg(String newsId) {
        log.info("接收到自动审核消息   监听队列 :{} 消息id: {}", NewsAutoScanConstants.WM_NEWS_AUTO_SCAN_QUEUE, newsId);
        wmNewsAutoScanService.autoScanWmNews(Integer.valueOf(newsId));
    }
}
